﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DataAccess;
namespace QLDSVCNTT_Nhom1
{
    public partial class frmGVQuanLyMonHoc : Form
    {
        public frmGVQuanLyMonHoc()
        {
            InitializeComponent();
        }
        public static GiaoVien gv;
        public static List<GiaoVien> listgv;
        private void frmGVQuanLyMonHoc_Load(object sender, EventArgs e)
        {
            GiaoVien gvchinh = gv;
            if (gvchinh !=null)
            {
                //hiện thông tin giáo viên:
                LoadGV_ThongTin(gv);
                LoadGV_MonHoc(gv);
            }
            else
            {
                 // load tat ca cac giao vien len:
                cbbTenGV.Visible = true;
                lbTenGV.Visible = false;
                listgv = GiaoVien.FindGiangVienOrChuyenVien();
                cbbTenGV.DataSource = listgv;
                cbbTenGV.DisplayMember = "TenGV";
                cbbTenGV.ValueMember = "MaGV";
                
            }
            
        }

        private void LoadGV_ThongTin(GiaoVien gv)
        {
            lbMaGV.Text = gv.MaGV;
            lbTenGV.Text = gv.TenGV;
            lbChucVu.Text = gv.ChucVu;
            lbHocVi.Text = gv.HocVi;
            lblEmail.Text = gv.Email;
            lbtelephone.Text = gv.Telephone;
        }
        private void LoadGV_MonHoc(GiaoVien gv)
        {
            List<GVQuanLyMonHoc> nw = GVQuanLyMonHoc.All(gv.MaGV);
            lvGVMH.Items.Clear();
            int i = 1;
            foreach (GVQuanLyMonHoc item in nw)
            {
                ListViewItem it = lvGVMH.Items.Add(i.ToString());
                it.SubItems.Add(item.MaMH.ToString());
                it.SubItems.Add(item.TenMH.ToString());
                it.SubItems.Add(item.HocKy.ToString());
                it.SubItems.Add(item.NamHoc.ToString());
                it.SubItems.Add(item.SoTC.ToString());
                it.SubItems.Add(item.TCLT.ToString());
                it.SubItems.Add(item.TCTH.ToString());
                it.SubItems.Add(item.BatBuoc.ToString());
                it.SubItems.Add(item.MoTaMH.ToString());
                i++;
            }
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void cbbTenGV_SelectedIndexChanged(object sender, EventArgs e)
        {
            GiaoVien gvn = new GiaoVien();
            gvn =cbbTenGV.SelectedItem as GiaoVien;
            
            LoadGV_ThongTin(gvn);
            LoadGV_MonHoc(gvn);
        }
        private void Form_ReLoadLogInGiaoVien()
        {
            GiaoVien gvnew = GiaoVien.Find_ByName(gv.MaGV);
            gv = gvnew;
            LoadGV_ThongTin(gvnew);
            LoadGV_MonHoc(gvnew);
        }
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            if (gv != null)// đang đăng nhập với quyền giáo viên
            {
                FrmUpdateGiaoVien frm = new FrmUpdateGiaoVien();
                frm.cbbChucVu.Enabled = false;
                frm.GV = gv;
                frm.ShowDialog();
                Form_ReLoadLogInGiaoVien();
            }
            else// đang đăng nhập với quyền Admin
            {
                FrmUpdateGiaoVien frm = new FrmUpdateGiaoVien();
                frm.cbbChucVu.Enabled = false;
                frm.GV = cbbTenGV.SelectedItem as GiaoVien;
                frm.ShowDialog();
                List<GiaoVien> listGVnew = GiaoVien.FindGiangVienOrChuyenVien();
                cbbTenGV.DataSource = listGVnew;
                cbbTenGV.DisplayMember = "TenGV";
                cbbTenGV.ValueMember = "MaGV";
            }
            
        }

        private void btnResetPass_Click(object sender, EventArgs e)
        {
            if (gv != null)// đang đăng nhập với quyền giáo viên
            {
                frmGVResetPassword frm = new frmGVResetPassword(gv);
                frm.ShowDialog();
            }
            else// đang đăng nhập với quyền Admin
            {
                MessageBox.Show("không có quyền can thiệp password giáo viên","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
            }
        }

        private void btnFind_Click(object sender, EventArgs e)
        {
            if (txtFind.Text != "" && cbbFind.SelectedItem != null)
            {
                //timer_Refresh.Enabled = false;
                string chuoitim = txtFind.Text;
                int chon = cbbFind.SelectedIndex;
                TimKiem(chuoitim, chon);
            }
            else
            {
                MessageBox.Show("bạn chua nhập gì để tìm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void TimKiem(string chuoitim, int chon)
        {
            List<GVQuanLyMonHoc> list = null;
            switch (chon)
            {
                case 0:
                    lvGVMH.Items.Clear();
                    list = GVQuanLyMonHoc.FindByNamHoc(lbMaGV.Text,chuoitim);
                    LoadListView(list);
                    break;
                case 1:
                    lvGVMH.Items.Clear();
                    list = GVQuanLyMonHoc.FindByHocKy(lbMaGV.Text,chuoitim);
                    LoadListView(list);
                    break;
                default:
                    this.btnFind.PerformClick();
                    break;
            }
        }

        private void LoadListView(List<GVQuanLyMonHoc> list)
        {
            lvGVMH.Items.Clear();
            int i = 1;
            foreach (GVQuanLyMonHoc item in list)
            {
                LayListView(item, i);
                i++;
            }
        }

        private void LayListView(GVQuanLyMonHoc item, int i)
        {
            ListViewItem lv = lvGVMH.Items.Add(i.ToString());
            lv.SubItems.Add(item.MaMH.ToString());
            lv.SubItems.Add(item.TenMH.ToString());
            lv.SubItems.Add(item.HocKy.ToString());
            lv.SubItems.Add(item.NamHoc.ToString());
            lv.SubItems.Add(item.SoTC.ToString());
            lv.SubItems.Add(item.TCLT.ToString());
            lv.SubItems.Add(item.TCTH.ToString());
            lv.SubItems.Add(item.BatBuoc.ToString());
            lv.SubItems.Add(item.MoTaMH.ToString());
        }

        private void txtFind_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Convert.ToInt16(e.KeyChar) == 13)
            {
                btnFind.PerformClick();
            }
        }

    }
}
